import dayjs from 'dayjs';
/**
 * 会议室使用情况
 * 30分钟一个格子
 * 上午18个格子
 * 下午18个格子
 */

/**
 * 根据时间获取数组下标
 * @param timestamp 时间戳
 * @returns 时间在数组对应的index
 */
function indexByTimestamp(timestamp: number): number {
  let index = (dayjs(timestamp).hour() - 6) * 2;
  //是否30分钟
  if (dayjs(timestamp).minute() === 30) {
    index++;
  }
  return index;
}
function meetingRoomUsedStatus(item: MeetingInfoApi.Dto) {
  //是否占用会议室：true 占用 false 不占用
  let isFullRoom: boolean[] = new Array(36).fill(false);
  //已经预约的会议室
  item.recordDtos?.forEach((subItem) => {
    if (subItem.startTime && subItem.endTime) {
      const startIndex = indexByTimestamp(subItem.startTime);
      const endIndex = indexByTimestamp(subItem.endTime);
      //startIndex-endStart 不包含endIndex
      for (let i = startIndex; i < endIndex; i++) {
        isFullRoom[i] = true;
      }
    }
  });
  return {
    isFullRoom,
  };
}

export { meetingRoomUsedStatus };
